/*
 *  window.h
 *  mini
 *
 *  Created by jin on 1/1/11.
 *  Copyright 2011 cs. All rights reserved.
 *
 */

#ifndef INCLUDED_WINDOW_H
#define INCLUDED_WINDOW_H

#include <dlimpexp.h>

class Graphic2D;
class WindowImpBase;
struct MouseEvent;

class MINI_API Window
{
public:
    Window();
    virtual ~Window();

    void Show(bool show = true);
    void* GetHandle();

    virtual void OnResize(unsigned int width, unsigned int height);
    virtual void OnPaint(Graphic2D& gc);

    virtual void OnMouseDown(MouseEvent& evt);
    virtual void OnMouseMove(MouseEvent& evt);
    virtual void OnMouseUp(MouseEvent& evt);
protected:
    WindowImpBase* pImp;
};
#endif //INCLUDED_WINDOW_H
